<?php
class Form_IndicadorCalculo extends Zend_Form
{
	public function __construct($options = null)
	{
		parent::__construct($options);
		
		$submit = new Zend_Form_Element_Submit('submit');
        $submit->setAttrib('id', 'submitbuttonx')
                ->setLabel("Salvar")
                ->setAttrib('class','submit-by-ajaxx');;
        
		$this->setName('indicador_calculo');
		$this->setAttrib('id','indicador_calculo');
		
		$num_indicador = new Zend_Form_Element_Hidden('num_indicador');
		$num_indicador->removeDecorator('label') ->removeDecorator('HtmlTag');
		
		
		$codigo_gerencia = $this->getGerenciaResponsavel('codigo_gerencia');
		
		$sistema_numerador= $this->getSistemaOrigem('sistema_numerador');
		$sistema_numerador->setLabel('Sistema de origem');
		
		$sql_numerador = $this->getInstrucoesSql('sql_numerador');
		$sql_numerador->setLabel('SQL numerador');
		
		$condicao = new Zend_Form_Element_Textarea('condicao');
		$condicao->setLabel('Condição/Filtro')->setAttrib('rows','3')->setAttrib('cols','100');
		
		
        $sistema_denominador= $this->getSistemaOrigem('sistema_denominador');
		$sistema_denominador->setLabel('Sistema de origem');
		
		$sql_denominador = $this->getInstrucoesSql('sql_denominador');
		$sql_denominador->setLabel('SQL denominador');
		
        $condicao_denominador = new Zend_Form_Element_Textarea('condicao_denominador');
		$condicao_denominador->setLabel('Condição/Filtro')->setAttrib('rows','3')->setAttrib('cols','100');
		
		 
		
		$fator =new Zend_Form_Element_Text('fator');
		$fator->setLabel('Fator')->setAttrib('size','6')
		          ->addFilter( new Zend_Filter_Alnum() )
		          ->addValidator( new Zend_Validate_Int()); 
		          
        $finalizado = new Zend_Form_Element_Checkbox('finalizado');
        $finalizado->setLabel('Finalizar');

        $detalhar_distrito =  new Zend_Form_Element_Checkbox('detalhar_distrito');
        $detalhar_distrito->setLabel('Detalhar por distrito');
        $detalhar_unidade = null;
        $this->addElements(array($num_indicador, 
                                 $detalhar_distrito,
                                 $detalhar_unidade,
                                 $sistema_numerador,
                                 $sql_numerador,
                                 $condicao,
                                 $sistema_denominador,
                                 $sql_denominador ,
                                 $fator,
                                 $finalizado,                              
                                 $submit));
	}
    /**
     * 
     * @param $name
     * @return Zend_Form_Element_Select
     */
	public function getGerenciaResponsavel($name){
		$gerencias = new Model_GerenciasResponsaveis();
		$formGerencias = new Zend_Form_Element_Select($name);
        foreach($gerencias->fetchAll() as $g) 
            $formGerencias->addMultiOptions(array($g->id => " ".$g->gerenciaresponsavel));
        
        $formGerencias->setLabel('Gerencia Responsável');
        return $formGerencias;
	}
    /**
     * 
     * @param $name
     * @return Zend_Form_Element_Select
     */
    public function getSistemaOrigem($name){
        $sistemas = new Model_Sistemas();
        $formSistemas = new Zend_Form_Element_Select($name);
        $formSistemas->addMultiOption(0 , "Selecione um sistema");
        foreach($sistemas->fetchAll() as $s) 
            $formSistemas->addMultiOption($s->codigo , $s->nome_sistema);
        
        $formSistemas->setLabel('Sistema de origem');
        return $formSistemas;
    }

    /**
     * 
     * @param $name
     * @return Zend_Form_Element_Select
     */
    public function getInstrucoesSql($name){
        $instrucoes = new Model_InstrucoesSql();
        $formInstrucoes = new Zend_Form_Element_Select($name);
        $formInstrucoes->addMultiOption(0 , "Instrução");
        foreach($instrucoes->fetchAll() as $s) 
            $formInstrucoes->addMultiOption($s->codigo , $s->descritivo);
        
        $formInstrucoes->setLabel('Instrução sql');
        return $formInstrucoes;
    }


    /**
     * 
     * @param $name
     * @return Zend_Form
     */
    public function getFormSexo($name){
    	$form = new Zend_Form('form_sexo');
        $sexo = new Model_Sexo();
        $formInstrucoes = new Zend_Form_Element_MultiCheckbox ($name);
        foreach($sexo->fetchAll() as $s) 
            $formInstrucoes->addMultiOption($s->codigo , $s->sexo);
        
        $formInstrucoes->addDecorator('HtmlTag', array('tag' => '<fieldset>'));
        $formInstrucoes->setLabel('Sexo');        
        
        return $formInstrucoes;
    }    
    
    public function getDados()
	{
		$return = $this->getValues();
		unset($return['submit']);
		foreach ($return as $k=>$v)
		{
			if(is_array($v)){
			     unset($return[$k]);
			}else{
				$return[$k] = str_replace ( '\\', '' , $return[$k] );
			}
		}
		return $return;
	}
}